home *** CD-ROM | disk | FTP | other *** search
- #include <LowMem.h>
- #include <A4Stuff.h>
- #include <QuickDraw.h>
- #include <Memory.h>
- #include <Resources.h>
- #include <Fonts.h>
- #include <Dialogs.h>
- #include <QDOffscreen.h>
- #include <string.h>
- #include <stdio.h>
- #include <Timer.h>
-
- int invertPos = 0;
- int invertVal[100] =
- {
- 0, 1, 3, 4, 6, 7, 9, 10, 12, 13,
- 14, 15, 17, 18, 19, 20, 21, 21, 22, 23,
- 23, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 23, 23, 22, 21, 21, 20, 19, 18, 17, 15,
- 14, 13, 12, 10, 9, 7, 6, 4, 3, 1,
- 0, -2, -4, -5, -7, -8,-10,-11,-13,-14,
- -15,-16,-18,-19,-20,-21,-22,-22,-23,-24,
- -24,-25,-25,-25,-25,-25,-25,-25,-25,-25,
- -24,-24,-23,-22,-22,-21,-20,-19,-18,-16,
- -15,-14,-13,-11,-10, -8, -7, -5, -4, -2
- };
-
- void initInvertPlug()
- {
- }
-
- void disposeInvertPlug()
- {
- }
-
- typedef struct {
- TMTask task;
- Ptr mainBaseAddr;
- Size worldBytes;
- Ptr worldBuffer;
- short rowBytes;
- short phase;
- Rect size;
- short offset;
- } MyTaskRec;
-
- void doInvertPlug(MyTaskRec* myTask)
- {
- EnterCodeResource ();
- short height = myTask -> size.bottom - myTask -> size.top;
- short phase = myTask -> phase;
- short rowBytes = myTask -> rowBytes;
- Ptr worldBuffer = myTask -> worldBuffer;
- Ptr screenBuffer = myTask -> mainBaseAddr;
-
- invertPos++;
- if(invertPos > 99)
- invertPos = 0;
-
- int i;
- for(i = 0; i < height; i++)
- {
- char *j;
- char *k;
-
- k = screenBuffer + (height - i) * rowBytes;
- for(j = worldBuffer + i * rowBytes + rowBytes - 1; j >= worldBuffer + i * rowBytes; j--)
- {
- *k = *j;
- k++;
- }
- }
- ExitCodeResource ();
- }
-
-